It is common for a person to store a significant amount of personal information, whether photos, word processing documents, spreadsheets, presentations, video, or the like, on a home computer. It is desirable to be able to access this information through a mobile device, such as a laptop computer or mobile phone, or through another computer at another location, such as a computer at a place of employment, or a publicly accessible computer.
Instead of storing such information on a home computer, a person may use a service which allows a person to store information on network-accessible storage. Typically, a user accesses a server using a browser application running on a client computer. After authentication, such as logging into an account, the user uploads and stores information on the server. Because the server can be accessed through the network from any computer with a browser application, the user can access and download the information they stored on the server through any other computer connected to the network.
When information is stored remotely on the server, there can be performance problems. For example, an individual in one geographic location, e.g., Europe or Asia, likely would find performance to be slow if the servers were in another distant geographical location, e.g., North America.
Some users are not comfortable with storing information on a server that is owned and controlled by someone else. Instead, they would prefer to access their own computers remotely. Some systems, called remote desktop systems, provide this kind of access by installing an application on the computer to be remotely accessed. The application allows a desktop view of a host computer to be manipulated from a client computer that is connected to the host computer through a TCP/IP network. In particular, the host computer continually contacts the server to see if remote access is being requested. When a user wants to connect to the host computer from a client computer, the user runs an application on the client computer that contacts the server. The server in turn connects the client with the host computer. After this connection, the client can transmit keyboard and other commands to the host computer, and the host computer returns screen updates to the client computer. In essence, the client computer provides inputs to the host computer, and the host computer returns screen updates to the client computer.
Running applications remotely and remotely controlling another machine provides slow performance. In addition, as with a storage server, an individual in one geographic location, e.g., Europe or Asia, likely would find performance to be slow if the servers were in another distant geographical location, e.g., North America.